package com.icode.core.dto.manager;

import com.icode.core.model.manage.MessageModel;
import com.icode.core.model.manage.ModelTemplate;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: xianfei
 * Date: 15-9-2
 * Time: 上午10:05
 * To change this template use File | Settings | File Templates.
 */
public class MessageModelDTO {

    private String guid;
    private String name;
    private String value;
    private List<ModelTemplateDTO> templateDTOs ;

    public static List<ModelTemplateDTO> initTemplate() {
        List<ModelTemplateDTO> templateDTOs = new ArrayList<>();
        for (ModelTemplate modelTemplate : ModelTemplate.values()) {
            String label = modelTemplate.getLabel();
            String name = modelTemplate.name();
            ModelTemplateDTO modelTemplateDTO = new ModelTemplateDTO(label, name);
            templateDTOs.add(modelTemplateDTO) ;
        }
        return templateDTOs;
    }

    public MessageModelDTO() {
    }

    public MessageModelDTO(String guid, String name, String value) {
        this.guid = guid;
        this.name = name;
        this.value = value;
    }

    public static MessageModelDTO toDTO(MessageModel messageModel) {
        return new MessageModelDTO(messageModel.guid(), messageModel.name(), messageModel.value());
    }

    public static List<MessageModelDTO> toDTOs(List<MessageModel> messageModels) {
        List<MessageModelDTO> messageModelDTOs = new ArrayList<>();
        for (MessageModel m : messageModels) {
            messageModelDTOs.add(toDTO(m));
        }
        return messageModelDTOs;
    }

    public static MessageModel toMessageModel(MessageModelDTO messageModelDTO) {
        return new MessageModel(messageModelDTO.getName(), messageModelDTO.getValue());
    }

    public String getGuid() {
        return guid;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setGuid(String guid) {
        this.guid = guid;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

    public List<ModelTemplateDTO> getTemplateDTOs() {
        return templateDTOs;
    }

    public void setTemplateDTOs(List<ModelTemplateDTO> templateDTOs) {
        this.templateDTOs = templateDTOs;
    }
}
